// pages/chooseMove/chooseMove.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    areaInfo: {} as NavItem,
    choose: [] as CardItem[],
    id: null as number | null,
    showLoading:true as boolean,
    timer: null as number | null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    const channel = this.getOpenerEventChannel();
    const app = getApp<IAppOption>();
    channel.on("item", ({ item }: { item: NavItem }) => {
      console.log(item , 'item')
      console.log(app.globalData.templateTempData, "app.globalData.templateTempData")
      // 获取可能之前添加过的动作choose
      app.globalData.templateTempData.forEach((val: TemplateTemp) => {
        console.log(val , 'val')
        if (val.areaId == item.id) {
          item.cardItem.forEach((data: CardItem) => {
            console.log(data , 'data')
            const temp = val.moveInfo.find( trueItem => {
               return trueItem.id === data.id
            })
            if(temp) {
              data.choose = true;
            }else {
              data.choose = false
            }
          })
          console.log(item)
          this.setData({
            choose: val.moveInfo,
          })
        }
      })
      this.setData({
        areaInfo: item,
        id: item.id
      })
      this.data.timer = setTimeout(() => {
        this.setData({
          showLoading: false
        })
      },100)
    })
  },
  // 选择动作
  chooseMove(event: any): void {
    const { id } = event.currentTarget.dataset.item
    this.data.areaInfo.cardItem = this.data.areaInfo.cardItem.map((item: CardItem) => {
      if (item.id === id) {
        item.choose = !item.choose;
      }
      return item;
    });
    this.setData({
      areaInfo: this.data.areaInfo,
      choose: this.data.areaInfo.cardItem.filter(item => {
        return item.choose == true
      }),
    })
  },
  // 完成添加
  addMove(): void {
    // 先将数据整理存储到全局变量
    const app = getApp<IAppOption>();
    // 参数整理
    const params: TemplateTemp = { areaId: this.data.id, areaName: this.data.areaInfo.name, moveInfo: this.data.choose }
    // 先删除之前相同ID的
    app.globalData.templateTempData = app.globalData.templateTempData.filter((item: TemplateTemp) => {
      return item.areaId !== this.data.id
    })
    // 在进行push
    app.globalData.templateTempData.push(params);
    if (this.data.choose.length == 0) {
      wx.showToast({
        title: "动作不能为空",
        icon: "error"
      })
      return
    }
    else {
      wx.navigateBack({
        delta: 2
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.setData({
      timer: null
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})